package com.usdt.web.core.config;

import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;


/**
 * swagger3在线文档配置<br>
 * 项目启动后可通过地址：http://host:ip/swagger-ui/index.html 查看在线文档
 *
 *Knife4j
 *项目启动后可通过地址：http://host:ip/doc.html 查看在线文档
 */

@Configuration
@Profile("!prd")
public class AdminSwagger3Configuration {

	 //swagger3
	  @Bean
	  public OpenAPI docket() {
	      return new OpenAPI()
	              .info(new Info().title("康养项目 API")
	              .description("health manage service")
	              .version("V1")
	              //.license(new License().name("Apache 2.0").url("http://springdoc.org")))
	              //.externalDocs(new ExternalDocumentation()
	              //.description("SpringShop Wiki Documentation")
	              //.url("https://springshop.wiki.github.org/docs")
	              );
	  }
	  
	// 配置需要显示的接口分组（排除指定包）
	    @Bean
	    public GroupedOpenApi publicApi() {
	        return GroupedOpenApi.builder()
	                .group("default") // 分组名称
	                //.packagesToScan("com.usdt.web.controller.cp.activity") // 只扫描 com.example.controller 包
	                .packagesToScan("com.usdt.web.controller.cp") // 只扫描 com.example.controller 包
	                //.pathsToMatch("/api/**") // 可选：只匹配 /api 开头的路径
	                .build();
	    }

	    // 可选：隐藏其他包的分组（通过不注册或清空路径）
		/* @Bean
		 public GroupedOpenApi hiddenApi() {
		     return GroupedOpenApi.builder()
		             .group("internal")
		             .packagesToScan("com.example.internal") // 扫描需要隐藏的包
		             .pathsToMatch("/internal/**")
		             .build()
		             .addAllOpenApiCustomizer(openApi -> openApi.setPaths(null)); // 关键：清空该分组的路径
		 }*/
}
